//bruteforce
#include <set>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long LL;
int n;
struct node{
	int i,v;
};
node a[2][200010];
bool vis[200010];
int orz;
int main(){
	freopen("fruit.in","r",stdin);
	freopen("fruit.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&a[orz][i].v),a[orz][i].i=i;
	while(n){
		memset(vis,0,sizeof vis);
		printf("%d ",a[orz][1].i);
		vis[1]=1;
		for(int i=2;i<=n;i++){
			if(a[orz][i].v!=a[orz][i-1].v) printf("%d ",a[orz][i].i),vis[i]=1;
		}
		int m=n;n=0;
		for(int i=1;i<=m;i++){
			if(!vis[i]){
				a[orz^1][++n]=a[orz][i];
			}
		}
		orz^=1;
		printf("\n");
	}
	return 0;
}

